package camid.util.ssh;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.Properties;

//import com.jcraft.jsch.Channel;
//import com.jcraft.jsch.JSch;
//import com.jcraft.jsch.JSchException;
//import com.jcraft.jsch.Session;

public class SSHCommandProcessor {

//	private JSch jsch;
//
//	private String user;
//
//	private String deployDir;
//
//	public SSHCommandProcessor(String user, File key)
//	{
//		try 
//		{
//			this.user = user;
//			System.out.println("User: " + user);
//
//			this.deployDir = DEPLOY_BASE + user;
//
//			this.jsch = new JSch();
//			if(key != null)
//			{
//				System.out.println("Key: " + key.getAbsolutePath());
//				this.jsch.addIdentity(key.getAbsolutePath());
//			}
//		}
//		catch( JSchException e )
//		{
//			e.printStackTrace();
//		}
//	}
//
//	public String sendCommand(String command, String host, int port) throws JSchException, IOException
//	{
//		Session session = this.jsch.getSession(user, host, port);
//		session.setConfig(getConnectionProperties());
//		session.connect();
//
//		Channel channel = session.openChannel("shell");
//		ByteArrayOutputStream baos = new ByteArrayOutputStream();
//		channel.setOutputStream(baos);
//
//		ByteArrayInputStream bais = new ByteArrayInputStream( (command + "\n").getBytes() );
//		channel.setInputStream(bais);
//		channel.connect();
//
//
//		try {
//			Thread.sleep(1000);
//		} catch (InterruptedException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//
//		String result = new String( baos.toByteArray() );
//
//
//		channel.disconnect();
//		session.disconnect();
//
//		return result;
//	}
//
//	private Properties getConnectionProperties()
//	{
//		Properties props = new Properties();
//		props.put("StrictHostKeyChecking", "no");
//		return props;
//	}
//
//	private static final String CAMID_FILE_NAME = "camid3-0.3.1-SNAPSHOT-jar-with-dependencies.jar";
//
//	private static final String DEPLOY_BASE = "/home/";
//
//	public String startCamidMainNodeCommand(String host, Integer sshPort, Integer nodePort) throws JSchException, IOException
//	{
//		String command = "nohup java -jar " + deployDir + "/" + CAMID_FILE_NAME 
//				+ " -port " + nodePort + " -ns -cm > " 
//				+ deployDir + "/out.log 2> " + deployDir + "/out.log < /dev/null &";
//
//		System.out.println(user + "@" + host + " -> " + command);
//		String response = sendCommand(command, host, sshPort);
//		
//		System.out.println(response);
//		return response;
//	}
//
//	public String startCamidWorkNodeCommand(String host, Integer sshPort, Integer nodePort, String nshost, Integer nsport) throws JSchException, IOException
//	{
//		String command = "nohup java -jar " + deployDir + "/" + CAMID_FILE_NAME 
//				+ " -port " + nodePort + " -nshost " + nshost + " -nsport " + nsport 
//				+ " > " + deployDir + "/out.log 2> " + deployDir + "/out.log < /dev/null &";
//
//		System.out.println(user + "@" + host + " -> " + command);
//		
//		String response = sendCommand(command, host, sshPort);
//		System.out.println(response);
//		
//		return response;
//	}
//
//
//	public String killJavaCommand(String host, Integer sshPort) throws JSchException, IOException
//	{
//		String command = "killall java";
//
//		String response = sendCommand(command, host, sshPort);
//		return response;
//	}
//
//
//	public static void main(String[] args) 
//	{
//		try 
//		{
//			File keyFile = new File("scripts/vbox_dsa");
//			SSHCommandProcessor command = new SSHCommandProcessor("ubuntu", keyFile);
//			String response = command.startCamidWorkNodeCommand("192.168.25.26" , 22, 15001, "192.168.25.25", 15001);
//			System.out.println(response);
//		} 
//		catch (JSchException e) 
//		{
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		} 
//		catch (IOException e) 
//		{
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}



//	}
}
